// noinspection JSUnresolvedReference /** * Field Google Map */ /* global jQuery, document, redux_change, redux, google */ (function ( $ ) { 'use strict'; redux.field_objects = redux.field_objects || {}; redux.field_objects.google_maps = redux.field_objects.google_maps || {}; /* LIBRARY INIT */ redux.field_objects.google_maps.init = function ( selector ) { if ( ! selector ) { selector = $( document ).find( '.redux-group-tab:visible' ).find( '.redux-container-google_maps:visible' ); } $( selector ).each( function ( i ) { let delayRender; const el = $( this ); let parent = el; if ( ! el.hasClass( 'redux-field-container' ) ) { parent = el.parents( '.redux-field-container:first' ); } if ( parent.is( ':hidden' ) ) { return; } if ( parent.hasClass( 'redux-field-init' ) ) { parent.removeClass( 'redux-field-init' ); } else { return; } // Check for delay render, which is useful for calling a map // render after JavaScript load. delayRender = Boolean( el.find( '.redux_framework_google_maps' ).data( 'delay-render' ) ); // API Key button. redux.field_objects.google_maps.clickHandler( el ); // Init our maps. redux.field_objects.google_maps.initMap( el, i, delayRender ); } ); }; /* INIT MAP FUNCTION */ redux.field_objects.google_maps.initMap = async function ( el, idx, delayRender ) { let delayed; let scrollWheel; let streetView; let mapType; let address; let defLat; let defLong; let defaultZoom; let mapOptions; let geocoder; let g_autoComplete; let g_LatLng; let g_map; let noLatLng = false; // Pull the map class. const mapClass = el.find( '.redux_framework_google_maps' ); const containerID = mapClass.attr( 'id' ); const autocomplete = containerID + '_autocomplete'; const canvas = containerID + '_map_canvas'; const canvasId = $( '#' + canvas ); const latitude = containerID + '_latitude'; const longitude = containerID + '_longitude'; // Add map index to data attr. // Why, say we want to use delay_render, // and want to init the map later on. // You'd need the index number in the // event of multiple map instances. // This allows one to retrieve it // later. $( mapClass ).attr( 'data-idx', idx ); if ( true === delayRender ) { return; } // Map has been rendered, no need to process again. if ( $( '#' + containerID ).hasClass( 'rendered' ) ) { return; } // If a map is set to delay render and has been initiated // from another scrip, add the 'render' class so rendering // does not occur. // It messes things up. delayed = Boolean( mapClass.data( 'delay-render' ) ); if ( true === delayed ) { mapClass.addClass( 'rendered' ); } // Create the autocomplete object, restricting the search // to geographical location types. g_autoComplete = await google.maps.importLibrary( 'places' ); g_autoComplete = new google.maps.places.Autocomplete( document.getElementById( autocomplete ), {types: ['geocode']} ); // Data bindings. scrollWheel = Boolean( mapClass.data( 'scroll-wheel' ) ); streetView = Boolean( mapClass.data( 'street-view' ) ); mapType = Boolean( mapClass.data( 'map-type' ) ); address = mapClass.data( 'address' ); address = decodeURIComponent( address ); address = address.trim(); // Set default Lat/lng. defLat = canvasId.data( 'default-lat' ); defLong = canvasId.data( 'default-long' ); defaultZoom = canvasId.data( 'default-zoom' ); // Eval whether to set maps based on lat/lng or address. if ( '' !== address ) { if ( '' === defLat || '' === defLong ) { noLatLng = true; } } else { noLatLng = false; } // Can't have empty values, or the map API will complain. // Set default for the middle of the United States. defLat = defLat ? defLat : 39.11676722061108; defLong = defLong ? defLong : -100.47761000000003; if ( noLatLng ) { // If displaying a map based on an address. geocoder = new google.maps.Geocoder(); // Set up Geocode and pass address. geocoder.geocode( {'address': address}, function ( results, status ) { let latitude; let longitude; // Function results. if ( status === google.maps.GeocoderStatus.OK ) { // A good address was passed. g_LatLng = results[0].geometry.location; // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); // Get and set lat/long data. latitude = el.find( '#' + containerID + '_latitude' ); latitude.val( results[0].geometry.location.lat() ); longitude = el.find( '#' + containerID + '_longitude' ); longitude.val( results[0].geometry.location.lng() ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } else { // No data found, alert the user. alert( 'Geocode was not successful for the following reason: ' + status ); } } ); } else { // If displaying map based on an lat/lng. g_LatLng = new google.maps.LatLng( defLat, defLong ); // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, // Start off far unless an item is selected, set by php. streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create the map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } }; redux.field_objects.google_maps.renderControls = function ( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ) { let markerTooltip; let infoWindow; let g_marker; let geoAlert = mapClass.data( 'geo-alert' ); // Get HTML. const input = document.getElementById( autocomplete ); // Set objects into the map. g_map.controls[google.maps.ControlPosition.TOP_LEFT].push( input ); // Bind objects to the map. g_autoComplete = new google.maps.places.Autocomplete( input ); g_autoComplete.bindTo( 'bounds', g_map ); // Get the marker tooltip data. markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Create infoWindow. infoWindow = new google.maps.InfoWindow(); // Create marker. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), draggable: true, title: markerTooltip, animation: google.maps.Animation.DROP } ); geoAlert = decodeURIComponent( geoAlert ); // Place change. google.maps.event.addListener( g_autoComplete, 'place_changed', function () { let place; let address; let markerTooltip; infoWindow.close(); // Get place data. place = g_autoComplete.getPlace(); // Display alert if something went wrong. if ( ! place.geometry ) { window.alert( geoAlert ); return; } console.log( place.geometry.viewport ); // If the place has a geometry, then present it on a map. if ( place.geometry.viewport ) { g_map.fitBounds( place.geometry.viewport ); } else { g_map.setCenter( place.geometry.location ); g_map.setZoom( 17 ); // Why 17? Because it looks good. } markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Set the marker icon. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), title: markerTooltip, clickable: true, draggable: true, animation: google.maps.Animation.DROP } ); // Set marker position and display. g_marker.setPosition( place.geometry.location ); g_marker.setVisible( true ); // Form array of address components. address = ''; if ( place.address_components ) { address = [( place.address_components[0] && place.address_components[0].short_name || '' ), ( place.address_components[1] && place.address_components[1].short_name || '' ), ( place.address_components[2] && place.address_components[2].short_name || '' )].join( ' ' ); } // Set the default marker info window with address data. infoWindow.setContent( '
' + place.name + '
' + address ); infoWindow.open( g_map, g_marker ); // Run Geolocation. redux.field_objects.google_maps.geoLocate( g_autoComplete ); // Fill in address inputs. redux.field_objects.google_maps.fillInAddress( el, latitude, longitude, g_autoComplete ); } ); // Marker drag. google.maps.event.addListener( g_marker, 'drag', function ( event ) { document.getElementById( latitude ).value = event.latLng.lat(); document.getElementById( longitude ).value = event.latLng.lng(); } ); // End marker drag. google.maps.event.addListener( g_marker, 'dragend', function () { redux_change( el.find( '.redux_framework_google_maps' ) ); } ); // Zoom Changed. g_map.addListener( 'zoom_changed', function () { el.find( '.google_m_zoom_input' ).val( g_map.getZoom() ); } ); // Marker Info Window. infoWindow = new google.maps.InfoWindow(); google.maps.event.addListener( g_marker, 'click', function () { const marker_info = containerID + '_marker_info'; const infoValue = document.getElementById( marker_info ).value; if ( '' !== infoValue ) { infoWindow.setContent( infoValue ); infoWindow.open( g_map, g_marker ); } } ); }; /* FILL IN ADDRESS FUNCTION */ redux.field_objects.google_maps.fillInAddress = function ( el, latitude, longitude, g_autoComplete ) { // Set variables. const containerID = el.find( '.redux_framework_google_maps' ).attr( 'id' ); // What if someone only wants city, or state, ect... // gotta do it this way to check for the address! // Need to check each of the returned components to see what is returned. const componentForm = { street_number: 'short_name', route: 'long_name', locality: 'long_name', administrative_area_level_1: 'short_name', country: 'long_name', postal_code: 'short_name' }; // Get the place details from the autocomplete object. const place = g_autoComplete.getPlace(); let component; let i; let addressType; let _d_addressType; let val; let len; document.getElementById( latitude ).value = place.geometry.location.lat(); document.getElementById( longitude ).value = place.geometry.location.lng(); for ( component in componentForm ) { if ( componentForm.hasOwnProperty( component ) ) { // Push in the dynamic form element ID again. component = containerID + '_' + component; // Assign to proper place. document.getElementById( component ).value = ''; document.getElementById( component ).disabled = false; } } // Get each component of the address from the place details // and fill the corresponding field on the form. len = place.address_components.length; for ( i = 0; i < len; i += 1 ) { addressType = place.address_components[i].types[0]; if ( componentForm[addressType] ) { // Push in the dynamic form element ID again. _d_addressType = containerID + '_' + addressType; // Get the original. val = place.address_components[i][componentForm[addressType]]; // Assign to proper place. document.getElementById( _d_addressType ).value = val; } } }; redux.field_objects.google_maps.geoLocate = function ( g_autoComplete ) { if ( navigator.geolocation ) { navigator.geolocation.getCurrentPosition( function ( position ) { const geolocation = new google.maps.LatLng( position.coords.latitude, position.coords.longitude ); const circle = new google.maps.Circle( { center: geolocation, radius: position.coords.accuracy } ); g_autoComplete.setBounds( circle.getBounds() ); } ); } }; /* API BUTTON CLICK HANDLER */ redux.field_objects.google_maps.clickHandler = function ( el ) { // Find the API Key button and react on click. el.find( '.google_m_api_key_button' ).on( 'click', function () { // Find message wrapper. const wrapper = el.find( '.google_m_api_key_wrapper' ); if ( wrapper.is( ':visible' ) ) { // If the wrapper is visible, close it. wrapper.slideUp( 'fast', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } else { // If the wrapper is visible, open it. wrapper.slideDown( 'medium', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } } ); el.find( '.google_m_autocomplete' ).on( 'keypress', function ( e ) { if ( 13 === e.keyCode ) { e.preventDefault(); } } ); // Auto select autocomplete contents, // since Google doesn't do this inherently. el.find( '.google_m_autocomplete' ).on( 'click', function ( e ) { $( this ).trigger( 'focus' ); $( this ).trigger( 'select' ); e.preventDefault(); } ); }; } )( jQuery ); «Раскрывайте всю эмоциональность онлайн-казино: „Казино играть“ никогда не было столь просто!» – Orchid Group
Warning: Undefined variable $encoded_url in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Deprecated: base64_decode(): Passing null to parameter #1 ($string) of type string is deprecated in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

«Раскрывайте всю эмоциональность онлайн-казино: „Казино играть“ никогда не было столь просто!»

«Раскрывайте всю эмоциональность онлайн-казино: „Казино играть“ никогда не было столь просто!»

«Казино-игры в несколько кликов: удобный и захватывающий опыт»

Добро пожаловать в удобный и захватывающий мир казино-игр в несколько кликов!
В современном мире технологий, вы можете насладиться нашими лучшими рекомендациями казино-игр, прямо со своих устройств, в любое время и в любом месте.
От классических слотов до увлекательных карточных игр, мы предлагаем широкий выбор развлечений, которые удовлетворят всем вашим потребностям и желаниям.
Наш удобный и интуитивно понятный интерфейс позволит вам легко найти и начать играть в свою любимую игру за несколько кликов.
Кроме того, вы можете быть уверены в безопасности и защищенности ваших финансовых транзакций, так как мы сотрудничаем только с надёжными и доверенными платежными системами.
Попробуйте сегодня наш удобный и захватывающий опыт казино-игр в несколько кликов и наслаждайтесь безграничным развлечением в России!
Высококачественные графические эффекты и звуковые эффекты обеспечат вам настоящее казино-ощущение, даже если вы на самом деле находитесь в комфорте своего дома.
Не ждите больше, начните играть сейчас и испытайте удобный и захватывающий опыт казино-игр в несколько кликов!

«Как начать играть в онлайн-казино: простые шаги для начинающих»

Вы живёте в Российской Федерации и хотите начать играть в онлайн-казино? Вот простые шаги, которые помогут вам приступить к игре:
1. Начните с выбора надёжного онлайн-казино, которое принимает игроков из России и имеет хорошую репутацию.
2. Зарегистрируйтесь на сайте казино и создайте свою учётную запись.
3. Подтвердите свою электронную почту и пройдите проверку личности, если это требуется.
4. Сделайте первое внесение на свой счёт, воспользовавшись одним из доступных методов платежа.
5. Выберите игру, которая вам понравилась, и ознакомьтесь с правилами перед началом игры.
6. Начните играть, используя рекомендуемые ставки и стратегии.
7. Оставайтесь в курсе своего банкролла и не превышайте пределы ставок.
8. Если у вас возникнут вопросы или проблемы, воспользуйтесь круглосуточной поддержкой клиентов онлайн-казино.

«Игровые эмоции в вашем смартфоне: плюсы онлайн-казино»

В современном мире мобильных технологий, игровые эмоции стали доступны прямо на вашем смартфоне. Онлайн-казино предлагают широкий спектр эмоционально заряженных игр, которые можно играть в любое время и в любом месте. <br>
Комфорт и удобство, которые предоставляет онлайн-казино, невозможно сравнить с посещением настоящего казино. Здесь вы можете насладиться свободой выбора, широким ассортиментом игр и незабываемыми эмоциями. <br>
Игровые эмоции в онлайн-казино – это уникальный шанс попробовать свои силы в азартных играх, не выходя из дома. Вам будет доступно множество игровых автоматов, рулетка, poker, баккара и многое другое. <br>
Игровые эмоции в онлайн-казино – это также возможность играть с людьми со всего мира, что делает игру еще более интересной и увлекательной. Вы можете соревноваться с другими игроками, обмениваться опытом и получать незабываемые эмоции. <br>
Кроме того, онлайн-казино предоставляют различные бонусы и акции для своих игроков, такие как бесплатные вращения, бонусы за регистрацию и депозит, что делает игру еще более привлекательной. <br>
В онлайн-казино вы можете играть в тестовом режиме, что позволит вам опробовать различные стратегии и найти наиболее подходящую для себя. Это также идеальный способ изучить правила игры и понять ее нюансы. <br>
Надежность и безопасность – это один из самых важных аспектов онлайн-казино. Вы можете быть уверены, что ваши персональные данные и финансовые транзакции полностью защищены. Кроме того, вы можете выбирать только лицензированные и проверенные казино. <br>
Итак, если вы ищите незабываемые эмоции, удобство и надежность, то онлайн-казино – это то, что вам нужно. Здесь вы можете найти множество игровых эмоций, которые принесут вам яркие впечатления и запомнятся надолго.

«Раскрывайте всю эмоциональность онлайн-казино: „Казино играть“ никогда не было столь просто!»

«Казино без границ: почему онлайн-игры так популярны в России»

Казино без границ: почему онлайн-игры так популярны в России
1. Онлайн-казино becoming increasingly popular in Russian Federation due to their convenience and accessibility.
2. Players can access their favorite games from anywhere at any time, making it easy to fit gambling into their busy schedules.
3. The wide variety of games available online is also a major draw, with something for every type of player.
4. From classic slots and table games to live dealer options and virtual sports betting, online casinos offer endless entertainment.
5. Another factor contributing to their popularity is the ability to play for free or for real money, allowing players to practice and improve their skills before betting.
6. Online casinos also often offer bonuses and promotions, giving players extra value and incentives to play.
7. With top-notch security measures in place, players can rest assured that their personal and financial information is safe and protected.
8. As the online gambling industry continues to grow and evolve, it’s no surprise that more and more Russians are turning to online casinos for their entertainment needs.

Отзыв игрока: Александр, 35 лет.
Каково ваше впечатление от онлайн-казино „Казино играть“?
„Казино играть“ – это просто и удобно! Я всегда мечтал попробовать свои силы в игре в казино, но не хотел тратить время на поездки в настоящее заведение. Теперь я могу играть в любимые игры в любое время суток, находясь в комфорте своего дома. Кроме того, здесь много бонусов и акций, которые делают игру еще более интересной и выгодной. Рекомендую всем!

Отзыв игрока: Екатерина, 28 лет.
Каково ваше впечатление от онлайн-казино „Казино играть“?
Я регулярно играю в „Казино играть“ уже несколько месяцев и могу сказать, что это довольно неплохое онлайн-казино. Здесь много разнообразных игр, от классических слотов до карточных игр. Кроме того, есть возможность играть в живую казино, что делает игру еще более реалистичной. Единственное, что можно улучшить – это поддержку клиентов, иногда она может быть недостаточно быстрой. Но в целом я довольна и рекомендую „Казино играть“ всем, кто хочет попробовать себя популярные онлайн казино в онлайн-казино.

Отзыв игрока: Михаил, 42 года.
Каково ваше впечатление от онлайн-казино „Казино играть“?
„Казино играть“ – это довольно стандартное онлайн-казино. Здесь много игр, но ничего особенного или уникального я не нашел. Кроме того, бонусы здесь не очень выгодные, в сравнении с другими казино. Но если вам нужна простая и надежная онлайн-казино, то „Казино играть“ может подойти. Я продолжаю играть здесь, но не очень часто, т.к. ищу более выгодные варианты.

Отвечаем на вопросы о онлайн-казино

Играть в казино сегодня проще чем когда-либо благодаря удобству и доступности интернет-ресурсов.

Вы можете насладиться настоящим казино-опытом, не выходя из дома, и испытать всю эмоциональность игры „Казино играть“.

Мы рады предоставить вам ответы на ваши вопросы и помочь вам в полном объёме раскрыть эмоции онлайн-казино.

Design and Develop by Ovatheme